C
C
C           USER MANUAL FOR DVCS EVOLUTION, AMPLITUDES and DVCS OBSERVABLES PROGRAM
C
C

DISCLAIMER: Any alteration of the programs on this web page and subsequent
	    use of results in publications without written permission
	    of the authors is PROHIBITED. If the programs on this webpage 
	    are used without alteration, the usage of results in publications 
	    is naturally encouraged (if so, we politely request that you 
            respect our contribution and cite the papers !)


			LO/NLO GPD EVOLUTION CODE
			------------------------

	Compilation: e.g., f77 -O3 -p inputgpdglobalgrid.f evolvegpd.f -o name.out

			The input code, inputgpdglobalgrid.f, is avaliable via e-mail request!

	Description: We have coded up nine possible options to link to 9 LO/NLO PDFs
	             The code is interactive and prompts the user for which PDF set they require.
	             It also prompts for the number of points required in x, nx, and Q and the range
		     in each (within the constraint that x_min = 10^-4, Q>Q_0).	
		     It will then generates nx output files called 
		     ndel**.dat or ldel**.dat (for NLO or LO input PDFs run at NLO/LO)
		     where ** runs from 01 upto nx.
		     This files are formatted for use in the DVCS amplitude program (see below).


			DVCS AMPLITUDES PROGRAM
			-----------------------

	Twist-2 & Twist-3 amplitudes:		


	Compilation: for example g77 myfile.f dvcsamp.f -o name.out

	A sample myfile.f named conv1.f is supplied as an example!

	Requirements: GPD data files (containing the evolved GPDs
		      for fixed skewedness), formatted as indicated below, 
	              and with the following name structure:

	LO: ldel**.dat where ** can run from 01 to 99 for GPD H
	    ldel**pol.dat where ** can run from 01 to 99 for GPD \tilde H   
	    ldel**e.dat where ** can run from 01 to 99 for GPD E
	    ldel**pole.dat where ** can run from 01 to 99 for GPD \tilde E

	NLO: nldel**.dat where ** can run from 01 to 99 for GPD H
	     nldel**pol.dat where ** can run from 01 to 99 for GPD \tilde H   
	     nldel**e.dat where ** can run from 01 to 99 for GPD E
	     nldel**pole.dat where ** can run from 01 to 99 for GPD \tilde E

	In the myfile.f the subroutine convolution should be called via

	call convolution(tw,gpd,pol,ord,lamlo,lamnlo,nfl,nx,ndel,nq)

	tw = 2 (twist-2) and = 3 (twist-3)

	gpd = 1 (spin-non-flip H, \tilde H) and = 2 (spin-flip E, \tilde E)

	pol = 1 (unpolarized) and = 2 (polarized)

	lam* must be real double precision and n* must be integer.

	lamlo = Lambda_QCD LO

	lambnlo = Lambda_QCD NLO

	nfl = # of flavours

	nx = # of points in the grid. Must always be 1 less than actual number
	      # of points in the grid.

	ndel= # of values of x_bj = # of GPD data files. Up to 99

	nq = # of points in Q in each GPD data file

	The general structure of GPD data files (in the non-diagonal
	"natural" representation of K. Golec-Biernat and A. Martin, 
	Phys. Rev. D59 (1999) 014029, rather than Ji's "symmetric" definitions !)
	must be 

	first line: value of x_bj (i.e. fixed value of skewedness for the evolution)
	second line: value of Q in GeV (note not Q^2 !)
	following lines (in this order): 
	parton momentum fraction (from 0 to 1) y, gluon, u-singlet, d-singlet, s-singlet
	Next Q in GeV
	y, gl, u, d, s 	
	etc...
	
	The output, i.e. the amplitudes, will be written in files:

	LO (twist-2): l*amp.dat where * runs over u,d,s and g for amplitude H
	    l*amppol.dat where * runs over u,d,s and g for amplitude \tilde H  
	    l*ampe.dat where * runs over u,d,s and g for amplitude E
	    l* amppole.dat where * runs over u,d,s and g for amplitude \tilde E

	NLO (twist-2): nlo*amp.dat where * runs over u,d,s and g for amplitude H
	     nlo*amppol.dat where * runs over u,d,s and g for amplitude \tilde H  
	     nlo*ampe.dat where * runs over u,d,s and g for amplitude E
	     nlo*pole.dat where * runs over u,d,s and g for amplitude \tilde E

	LO (twist-3): l*amptw3.dat where * runs over u,d,s and g for amplitude H
	    l*amppoltw3.dat where * runs over u,d,s and g for amplitude \tilde H  
	    l*ampetw3.dat where * runs over u,d,s and g for amplitude E
	    l* amppoletw3.dat where * runs over u,d,s and g for amplitude \tilde E

	The derivative of the LO twist-3 amplitudes is computed with derivfunc.f.
	This program needs the the files l*amptw3.dat,l*amppoltw3.dat,l*ampetw3.dat
	and l* amppoletw3.dat as input!

	Compilation: g77 derivfunc.f -o name.out

	Output:	l*amptw3d.dat where * runs over u,d,s and g for amplitude H
	    l*amppoltw3d.dat where * runs over u,d,s and g for amplitude \tilde H  
	    l*ampetw3d.dat where * runs over u,d,s and g for amplitude E
	    l* amppoletw3d.dat where * runs over u,d,s and g for amplitude \tilde E
	
	


			  DVCS OBSERVABLES PROGRAM
			  ------------------------

	See readme file in the observables package from this webpage!
	

			GAMMA*-PROTON CROSS SECTION
			---------------------------
	Compilation: g77 myfile2.f siggammaprov2.f -o name.out

	Produces \sigma(\gamma^* + proton -> \gamma + proton) for fixed
	W and varying Q^2 and for fixed Q^2 and varying W in LO and NLO.

	Requirements: Needs the DVCS amplitudes files l*amp.dat and nlo*amp.dat
		      with * = u,d,s and g.

        At present the program admits 20 values for x_bj and 10 values for Q^2.
	If more are needed, please contact authors for change. 
        (REWRITING YOURSELF MAY PRODUCE UNPHYSICAL RESULTS !!)

	Usage: call sig(qsqmin,qsqmax,wsq1,qbar)

	All the variables are double precision
	
	qsqmin = minmial value of Q^2 for fixed W Xsection

	qsqmax = maximum value of Q^2 for fixed W Xsection

	wsq1 = value of W for fixed W Xsection

	qbar = fixed value of Q^2 for fixed Q^2 Xsection

	The model for the B-slope of the t-dependence (here e^Bt) is implemented in function bour.

	Depending on qsqmin and qsqmax, the programm determines itself which values of Q^2 in your GPD files
	should be discarded!







